import time
from selenium import webdriver
from common.base_page import BasePage


class Driver:
    def __init__(self):
        """
        初始化配置谷歌浏览对象
        """
        self.option = webdriver.ChromeOptions()

    def creeper(self):
        """
        配置浏览器,用于爬虫
        :return: self.option: 浏览器配置项
        """
        self.option.add_argument("--start-maximized")  # 浏览器窗口最大
        self.option.add_argument("--headless")  # 无头浏览器
        self.option.add_argument("--disable-gpu")  # 需要配合headless使用
        self.option.add_argument('blink-settings=imagesEnabled=false')  # 不加载图片, 提升速度
        return self.option

    def max_screen(self):
        """
        浏览器界面最大化
        :return: 
        """
        self.option.add_argument("--start-maximized")  # 浏览器窗口最大
        return self.option

    def headless(self):
        """
        不打开界面运行，需要谷歌浏览器v60以上
        :return: 
        """
        self.option.add_argument("--headless")  # 无头浏览器
        self.option.add_argument("--disable-gpu")  # 需要配合headless使用
        return self.option

    def forbid_remind_auto(self):
        """
        禁用浏览器正在被自动化程序控制的提示
        :return:
        """
        self.option.add_argument("--disable-infobars")
        return self.option

    def forbid_alter(self):
        """
        禁用浏览器弹窗
        :return:
        """
        prefs = {
            'profile.default_content_setting_values': {
                'notifications': 2
            }
        }
        self.option.add_experimental_option('prefs', prefs)
        return self.option

    def driver_max_screen(self):
        """
        获取界面最大化浏览器
        :return: driver: 获取操作浏览器的对象
        """
        self.option = self.driver_max_screen
        driver = webdriver.Chrome(options=self.option)
        return driver


if __name__ == '__main__':
    driver = Driver().driver_max_screen()
    driver.get("https://www.baidu.com/")  # 打开百度
    bp = BasePage(driver)
    time.sleep(10)
    bp.quit_browser()
